home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_gzip.py < prev    next >
Text File  |  2005-10-18  |  2KB  |  91 lines

  1. from test.test_support import verify, TESTFN
  2. import sys, os
  3. import gzip
  4.  
  5. filename = TESTFN
  6.  
  7. data1 = """  int length=DEFAULTALLOC, err = Z_OK;
  8.   PyObject *RetVal;
  9.   int flushmode = Z_FINISH;
  10.   unsigned long start_total_out;
  11.  
  12. """
  13.  
  14. data2 = """/* zlibmodule.c -- gzip-compatible data compression */
  15. /* See http://www.gzip.org/zlib/
  16. /* See http://www.winimage.com/zLibDll for Windows */
  17. """
  18.  
  19. f = gzip.GzipFile(filename, 'wb') ; f.write(data1 * 50)
  20.  
  21. # Try flush and fileno.
  22. f.flush()
  23. f.fileno()
  24. if hasattr(os, 'fsync'):
  25.     os.fsync(f.fileno())
  26. f.close()
  27.  
  28. # Try reading.
  29. f = gzip.GzipFile(filename, 'r') ; d = f.read() ; f.close()
  30. verify(d == data1*50)
  31.  
  32. # Append to the previous file
  33. f = gzip.GzipFile(filename, 'ab') ; f.write(data2 * 15) ; f.close()
  34.  
  35. f = gzip.GzipFile(filename, 'rb') ; d = f.read() ; f.close()
  36. verify(d == (data1*50) + (data2*15))
  37.  
  38. # Try .readline() with varying line lengths
  39.  
  40. f = gzip.GzipFile(filename, 'rb')
  41. line_length = 0
  42. while 1:
  43.     L = f.readline(line_length)
  44.     if L == "" and line_length != 0: break
  45.     verify(len(L) <= line_length)
  46.     line_length = (line_length + 1) % 50
  47. f.close()
  48.  
  49. # Try .readlines()
  50.  
  51. f = gzip.GzipFile(filename, 'rb')
  52. L = f.readlines()
  53. f.close()
  54.  
  55. f = gzip.GzipFile(filename, 'rb')
  56. while 1:
  57.     L = f.readlines(150)
  58.     if L == []: break
  59. f.close()
  60.  
  61. # Try seek, read test
  62.  
  63. f = gzip.GzipFile(filename)
  64. while 1:
  65.     oldpos = f.tell()
  66.     line1 = f.readline()
  67.     if not line1: break
  68.     newpos = f.tell()
  69.     f.seek(oldpos)  # negative seek
  70.     if len(line1)>10:
  71.         amount = 10
  72.     else:
  73.         amount = len(line1)
  74.     line2 = f.read(amount)
  75.     verify(line1[:amount] == line2)
  76.     f.seek(newpos)  # positive seek
  77. f.close()
  78.  
  79. # Try seek, write test
  80. f = gzip.GzipFile(filename, 'w')
  81. for pos in range(0, 256, 16):
  82.     f.seek(pos)
  83.     f.write('GZ\n')
  84. f.close()
  85.  
  86. f = gzip.GzipFile(filename, 'r')
  87. verify(f.myfileobj.mode == 'rb')
  88. f.close()
  89.  
  90. os.unlink(filename)
  91.